home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BMUG Revelations
/
BMUG Revelations.toast
/
Programming
/
Programming Languages
/
UCB Logo 3.0
/
CSLS
/
docsetup
< prev
next >
Wrap
Text File
|
1992-09-04
|
22KB
|
712 lines
TO MATCH!
IF EMPTYP :SEN [OP "FALSE]
IF NOT TRY.PRED [OP "FALSE]
MAKE :SPECIAL.VAR FIRST :SEN
OP MATCH BF :PAT BF :SEN
END
TO MATCH#
MAKE :SPECIAL.VAR []
OP #TEST #GATHER :SEN
END
TO #GATHER :SEN
IF EMPTYP :SEN [OP :SEN]
IF NOT TRY.PRED [OP :SEN]
MAKE :SPECIAL.VAR LPUT FIRST :SEN THING :SPECIAL.VAR
OP #GATHER BF :SEN
END
TO #TEST :SEN
IF MATCH BF :PAT :SEN [OP "TRUE]
IF EMPTYP THING :SPECIAL.VAR [OP "FALSE]
OP #TEST2 FPUT LAST THING :SPECIAL.VAR :SEN
END
TO #TEST2 :SEN
MAKE :SPECIAL.VAR BL THING :SPECIAL.VAR
OP #TEST :SEN
END
TO MATCH&
OP &TEST MATCH#
END
TO &TEST :TF
IF EMPTYP THING :SPECIAL.VAR [OP "FALSE]
OP :TF
END
TO MATCH?
MAKE :SPECIAL.VAR []
IF EMPTYP :SEN [OP MATCH BF :PAT :SEN]
IF NOT TRY.PRED [OP MATCH BF :PAT :SEN]
MAKE :SPECIAL.VAR FIRST :SEN
IF MATCH BF :PAT BF :SEN [OP "TRUE]
MAKE :SPECIAL.VAR []
OP MATCH BF :PAT :SEN
END
TO MATCH@
MAKE :SPECIAL.VAR :SEN
OP @TEST []
END
TO @TEST :SEN
IF @TRY.PRED [IF MATCH BF :PAT :SEN [OP "TRUE]]
IF EMPTYP THING :SPECIAL.VAR [OP "FALSE]
OP @TEST2 FPUT LAST THING :SPECIAL.VAR :SEN
END
TO @TEST2 :SEN
MAKE :SPECIAL.VAR BL THING :SPECIAL.VAR
OP @TEST :SEN
END
TO @TRY.PRED
IF LISTP :SPECIAL.PRED [OP MATCH :SPECIAL.PRED THING :SPECIAL.VAR]
OP RUN LIST :SPECIAL.PRED THING :SPECIAL.VAR
END
TO ADDMEMR :WORD :PATTERN :RESULTS
LOCAL "PROPNAME
MAKE "PROPNAME GENSYM
PPROP :WORD "MEMR ( SE GPROP :WORD "MEMR LIST :PATTERN :PROPNAME )
PPROP :WORD :PROPNAME :RESULTS
END
TO ADDPUNCT :STUFF :CHAR
IF WORDP :STUFF [OUTPUT WORD :STUFF :CHAR]
IF EMPTYP :STUFF [OUTPUT :CHAR]
OUTPUT SE BL :STUFF WORD LAST :STUFF :CHAR
END
TO ADDRULE :WORD :PATTERN :RESULTS
LOCAL "PROPNAME
MAKE "PROPNAME GENSYM
PPROP :WORD "RULES ( SE GPROP :WORD "RULES LIST :PATTERN :PROPNAME )
PPROP :WORD :PROPNAME :RESULTS
END
TO ALWAYS :X
OP "TRUE
END
TO ANALYZE :SENTENCE :KEYWORDS
LOCAL [RULES KEYWORD]
IF EMPTYP :KEYWORDS [NORULES STOP]
MAKE "KEYWORD FIRST :KEYWORDS
MAKE "RULES GPROP :KEYWORD "RULES
IF WORDP FIRST :RULES ~
[MAKE "KEYWORD FIRST :RULES MAKE "RULES GPROP :KEYWORD "RULES]
CHECKRULES :KEYWORD :RULES
END
TO ANYOF :SEN
OP ANYOF1 :SEN :IN.LIST
END
TO ANYOF1 :SEN :PATS
IF EMPTYP :PATS [OP "FALSE]
IF MATCH FIRST :PATS :SEN [OP "TRUE]
OP ANYOF1 :SEN BF :PATS
END
TO BELIEFP :WORD
OUTPUT NOT EMPTYP GPROP :WORD "BELIEF
END
TO CHECKPRIORITY :WORD
LOCAL "PRIORITY
MAKE "PRIORITY GPROP :WORD "PRIORITY
IF EMPTYP :PRIORITY [STOP]
IF EMPTYP :KEYWORDS [MAKE "KEYWORDS ( LIST :WORD ) STOP]
IFELSE :PRIORITY > ( GPROP FIRST :KEYWORDS "PRIORITY ) ~
[MAKE "KEYWORDS FPUT :WORD :KEYWORDS] ~
[MAKE "KEYWORDS LPUT :WORD :KEYWORDS]
END
TO CHECKRULES :KEYWORD :RULES
IF NOT MATCH FIRST :RULES :SENTENCE ~
[CHECKRULES :KEYWORD BF BF :RULES STOP]
DORULE FIRST BF :RULES
END
TO DOCTOR
LOCAL [TEXT SENTENCE STUFF A B C RULES KEYWORDS]
MAKE "MEMORY []
PR [HELLO, I AM THE DOCTOR. WHAT CAN I DO FOR YOU?]
PR [PLEASE END YOUR REMARKS WITH AN EMPTY LINE.]
PR []
LOOP
END
TO DORULE :RULE
LOCAL "PRINT
MAKE "PRINT FIRST GPROP :KEYWORD :RULE
PPROP :KEYWORD :RULE LPUT :PRINT BF GPROP :KEYWORD :RULE
IF EQUALP :PRINT "NEWKEY [ANALYZE :SENTENCE BF :KEYWORDS STOP]
IF WORDP :PRINT [CHECKRULES :PRINT GPROP :PRINT "RULES STOP]
IF EQUALP FIRST :PRINT "PRE ~
[ANALYZE RECONSTRUCT FIRST BF :PRINT BF BF :PRINT STOP]
PRINT RECONSTRUCT :PRINT
MEMORY :KEYWORD :SENTENCE
END
TO FAMILYP :WORD
OUTPUT NOT EMPTYP GPROP :WORD "FAMILY
END
TO GETSENTENCE :TEXT
MAKE "KEYWORDS []
OUTPUT GETSENTENCE1 :TEXT []
END
TO GETSENTENCE1 :TEXT :OUT
IF EMPTYP :TEXT [OUTPUT :OUT]
IF EQUALP FIRST :TEXT ". ~
[IFELSE EMPTYP :KEYWORDS ~
[OUTPUT GETSENTENCE1 BF :TEXT []] [OUTPUT :OUT]]
CHECKPRIORITY FIRST :TEXT
OUTPUT GETSENTENCE1 BF :TEXT SE :OUT TRANSLATE FIRST :TEXT
END
TO GETSTUFF :STUFF
LOCAL "LINE
MAKE "LINE RL
IF EMPTYP :LINE [OP :STUFF]
OP GETSTUFF SE :STUFF :LINE
END
TO IN :WORD
OP MEMBERP :WORD :IN.LIST
END
TO LASTRESORT
PRINT FIRST :LASTRESORT
MAKE "LASTRESORT LPUT FIRST :LASTRESORT BF :LASTRESORT
END
TO LOOP
MAKE "TEXT TOKENIZE GETSTUFF []
MAKE "SENTENCE GETSENTENCE :TEXT
ANALYZE :SENTENCE :KEYWORDS
PRINT []
LOOP
END
TO MATCH :PAT :SEN
LOCAL [SPECIAL.VAR SPECIAL.PRED SPECIAL.BUFFER IN.LIST]
IF OR WORDP :PAT WORDP :SEN [OP "FALSE]
IF EMPTYP :PAT [OP EMPTYP :SEN]
IF LISTP FIRST :PAT [OP SPECIAL FPUT "!: :PAT :SEN]
IF MEMBERP FIRST FIRST :PAT [? # ! & @] [OP SPECIAL :PAT :SEN]
IF EMPTYP :SEN [OP "FALSE]
IF EQUALP FIRST :PAT FIRST :SEN [OP MATCH BF :PAT BF :SEN]
OP "FALSE
END
TO MEMORY :KEYWORD :SENTENCE
LOCAL [RULES RULE NAME]
MAKE "RULES GPROP :KEYWORD "MEMR
IF EMPTYP :RULES [STOP]
IF NOT MATCH FIRST :RULES :SENTENCE [STOP]
MAKE "NAME LAST :RULES
MAKE "RULES GPROP :KEYWORD :NAME
MAKE "RULE FIRST :RULES
PPROP :KEYWORD :NAME LPUT :RULE BF :RULES
MAKE "MEMORY FPUT RECONSTRUCT :SENTENCE :MEMORY
END
TO NORULES
IFELSE :MEMFLAG [USEMEMORY] [LASTRESORT]
MAKE "MEMFLAG NOT :MEMFLAG
END
TO PARSE.SPECIAL :WORD :VAR
IF EMPTYP :WORD [OP LIST :VAR "ALWAYS]
IF EQUALP FIRST :WORD ": [OP LIST :VAR BF :WORD]
OP PARSE.SPECIAL BF :WORD WORD :VAR FIRST :WORD
END
TO QUOTED :THING
IF LISTP :THING [OP :THING]
OP WORD "" :THING
END
TO RECONSTRUCT :SENTENCE
IF EMPTYP :SENTENCE [OUTPUT []]
IF NOT EQUALP ": FIRST FIRST :SENTENCE ~
[OUTPUT FPUT FIRST :SENTENCE RECONSTRUCT BF :SENTENCE]
OUTPUT SE REWORD FIRST :SENTENCE RECONSTRUCT BF :SENTENCE
END
TO REWORD :WORD
IF MEMBERP LAST :WORD [. ? ,] [OUTPUT ADDPUNCT REWORD BL :WORD LAST :WORD]
OUTPUT THING BF :WORD
END
TO SET.IN
MAKE "IN.LIST FIRST BF :PAT
MAKE "PAT FPUT FIRST :PAT BF BF :PAT
END
TO SET.SPECIAL :LIST
MAKE "SPECIAL.VAR FIRST :LIST
MAKE "SPECIAL.PRED LAST :LIST
IF EMPTYP :SPECIAL.VAR [MAKE "SPECIAL.VAR "SPECIAL.BUFFER]
IF MEMBERP :SPECIAL.PRED [IN ANYOF] [SET.IN]
IF NOT EMPTYP :SPECIAL.PRED [STOP]
MAKE "SPECIAL.PRED FIRST BF :PAT
MAKE "PAT FPUT FIRST :PAT BF BF :PAT
END
TO SETUP
MAKE "MEMFLAG "FALSE
MAKE "LASTRESORT [[I AM NOT SURE I UNDERSTAND YOU FULLY.] ~
[PLEASE GO ON.] ~
[WHAT DOES THAT SUGGEST TO YOU?] ~
[DO YOU FEEL STRONGLY ABOUT DISCUSSING SUCH THINGS?]]
SETUP1
SETUP2
SETUP3
SETUP4
ERASE [SETUP1 SETUP2 SETUP3 SETUP4 ADDRULE ADDMEMR SETUP]
END
TO SETUP1
PPROP "SORRY "PRIORITY 0
ADDRULE "SORRY [#] ~
[[PLEASE DON'T APOLOGIZE.] ~
[APOLOGIES ARE NOT NECESSARY.] ~
[WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE?] ~
[I'VE TOLD YOU THAT APOLOGIES ARE NOT REQUIRED.]]
PPROP "DONT "TRANSLATION "DON'T
PPROP "CANT "TRANSLATION "CAN'T
PPROP "WONT "TRANSLATION "WON'T
PPROP "REMEMBER "PRIORITY 5
ADDRULE "REMEMBER ~
[# YOU REMEMBER #STUFF] ~
[[DO YOU OFTEN THINK OF :STUFF?] ~
[DOES THINKING OF :STUFF BRING ANYTHING ELSE TO MIND?] ~
[WHAT ELSE DO YOU REMEMBER?] ~
[WHY DO YOU REMEMBER :STUFF JUST NOW?] ~
[WHAT IN THE PRESENT SITUATION REMINDS YOU OF :STUFF?]]
ADDRULE "REMEMBER [# DO I REMEMBER #STUFF] ~
[[DID YOU THINK I WOULD FORGET :STUFF?] ~
[WHY DO YOU THINK I SHOULD RECALL :STUFF NOW?] ~
[WHAT ABOUT :STUFF?] WHAT [YOU MENTIONED :STUFF.]]
ADDRULE "REMEMBER [#] [NEWKEY]
PPROP "IF "PRIORITY 3
ADDRULE "IF [#A IF #B HAD #C] [[PRE [:A IF :B MIGHT HAVE :C] IF]]
ADDRULE "IF [# IF #STUFF] ~
[[DO YOU THINK IT'S LIKELY THAT :STUFF?] ~
[DO YOU WISH THAT :STUFF?] ~
[WHAT DO YOU THINK ABOUT :STUFF?]]
PPROP "DREAMED "PRIORITY 4
ADDRULE "DREAMED [# YOU DREAMED #STUFF] ~
[[REALLY :STUFF?] ~
[HAVE YOU EVER FANTASIED :STUFF WHILE YOU WERE AWAKE?] ~
[HAVE YOU DREAMED :STUFF BEFORE?] DREAM NEWKEY]
ADDRULE "DREAMED [#] [DREAM NEWKEY]
PPROP "DREAMT "TRANSLATION "DREAMED
PPROP "DREAMT "PRIORITY 4
PPROP "DREAMT "RULES [DREAMED]
PPROP "DREAM "PRIORITY 3
ADDRULE "DREAM [#] ~
[[WHAT DOES THAT DREAM SUGGEST TO YOU?] ~
[DO YOU DREAM OFTEN?] ~
[WHAT PERSONS APPEAR IN YOUR DREAMS?] ~
[DON'T YOU BELIEVE THAT DREAM HAS SOMETHING TO DO WITH YOUR PROBLEM?] ~
[DO YOU EVER WISH YOU COULD FLEE FROM REALITY?] NEWKEY]
PPROP "DREAMS "TRANSLATION "DREAM
PPROP "DREAMS "PRIORITY 3
PPROP "DREAMS "RULES [DREAM]
PPROP "WHAT "PRIORITY 0
ADDRULE "WHAT [!:IN [WHAT WHERE] #] [HOW]
ADDRULE "WHAT [# !A:IN [WHAT WHERE] #B] ~
[[TELL ME ABOUT :A :B.] [:A :B?] ~
[DO YOU WANT ME TO TELL YOU :A :B?] [REALLY.] [I SEE.] NEWKEY]
PPROP "ALIKE "PRIORITY 10
PPROP "ALIKE "RULES [DIT]
PPROP "SAME "PRIORITY 10
PPROP "SAME "RULES [DIT]
PPROP "CERTAINLY "PRIORITY 0
PPROP "CERTAINLY "RULES [YES]
PPROP "FEEL "BELIEF "TRUE
PPROP "THINK "BELIEF "TRUE
PPROP "BELIEVE "BELIEF "TRUE
PPROP "WISH "BELIEF "TRUE
PPROP "BET "BELIEF "TRUE
ADDMEMR "MY [# YOUR &STUFF] ~
[[EARLIER YOU SAID YOUR :STUFF.] ~
[BUT YOUR :STUFF.] ~
[DOES THAT HAVE ANYTHING TO DO WITH YOUR STATEMENT ABOUT :STUFF?]]
PPROP "PERHAPS "PRIORITY 0
ADDRULE "PERHAPS [#] ~
[[YOU DON'T SEEM QUITE CERTAIN.] ~
[WHY THE UNCERTAIN TONE?] ~
[CAN'T YOU BE MORE POSITIVE?] ~
[YOU AREN'T SURE.] [DON'T YOU KNOW?]]
PPROP "MAYBE "PRIORITY 0
PPROP "MAYBE "RULES [PERHAPS]
PPROP "NAME "PRIORITY 15
ADDRULE "NAME [#] ~
[[I AM NOT INTERESTED IN NAMES.] ~
[I'VE TOLD YOU BEFORE I DON'T CARE ABOUT |NAMES;| PLEASE CONTINUE.]]
PPROP "DEUTSCH "PRIORITY 0
ADDRULE "DEUTSCH [#] [[I'M SORRY, I SPEAK ONLY ENGLISH.]]
PPROP "FRANCAIS "PRIORITY 0
PPROP "FRANCAIS "RULES [DEUTSCH]
PPROP "SVENSKA "PRIORITY 0
PPROP "SVENSKA "RULES [DEUTSCH]
PPROP "ITALIANO "PRIORITY 0
PPROP "ITALIANO "RULES [DEUTSCH]
PPROP "ESPANOL "PRIORITY 0
PPROP "ESPANOL "RULES [DEUTSCH]
PPROP "HELLO "PRIORITY 0
ADDRULE "HELLO [#] [[HOW DO YOU DO. PLEASE STATE YOUR PROBLEM.]]
PPROP "COMPUTER "PRIORITY 50
ADDRULE "COMPUTER [#] ~
[[DO COMPUTERS WORRY YOU?] ~
[WHY DO YOU MENTION COMPUTERS?] ~
[WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEM?] ~
[DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?] ~
[WHAT ABOUT MACHINES WORRIES YOU?] ~
[WHAT DO YOU THINK ABOUT MACHINES?]]
PPROP "MACHINE "PRIORITY 50
PPROP "MACHINE "RULES [COMPUTER]
PPROP "MACHINES "PRIORITY 50
PPROP "MACHINES "RULES [COMPUTER]
PPROP "COMPUTERS "PRIORITY 50
PPROP "COMPUTERS "RULES [COMPUTER]
PPROP "AM "PRIORITY 0
PPROP "AM "TRANSLATION "ARE
END
TO SETUP2
ADDRULE "AM [# ARE YOU #STUFF] ~
[[DO YOU BELIEVE YOU ARE :STUFF?] ~
[WOULD YOU WANT TO BE :STUFF?] ~
[YOU WISH I WOULD TELL YOU YOU ARE :STUFF.] ~
[WHAT WOULD IT MEAN IF YOU WERE :STUFF?] HOW]
ADDRULE "AM [#] [[WHY DO YOU SAY "AM"?] [I DON'T UNDERSTAND THAT.]]
PPROP "ARE "PRIORITY 0
ADDRULE "ARE [#A THERE ARE #B YOU #C] [[PRE [:A THERE ARE :B] ARE]]
ADDRULE "ARE [# THERE ARE &STUFF] ~
[[WHAT MAKES YOU THINK THERE ARE :STUFF?] ~
[DO YOU USUALLY CONSIDER :STUFF?] ~
[DO YOU WISH THERE WERE :STUFF?]]
ADDRULE "ARE [# ARE I #STUFF] ~
[[WHY ARE YOU INTERESTED IN WHETHER I AM :STUFF OR NOT?] ~
[WOULD YOU PREFER IF I WEREN'T :STUFF?] ~
[PERHAPS I AM :STUFF IN YOUR FANTASIES.] ~
[DO YOU SOMETIMES THINK I AM :STUFF?] HOW]
ADDRULE "ARE [ARE #] [HOW]
ADDRULE "ARE [# ARE #STUFF] ~
[[DID YOU THINK THEY MIGHT NOT BE :STUFF?] ~
[WOULD YOU LIKE IT IF THEY WERE NOT :STUFF?] ~
[WHAT IF THEY WERE NOT :STUFF?] [POSSIBLY THEY ARE :STUFF.]]
PPROP "YOUR "PRIORITY 0
PPROP "YOUR "TRANSLATION "MY
ADDRULE "YOUR [# MY #STUFF] ~
[[WHY ARE YOU CONCERNED OVER MY :STUFF?] ~
[WHAT ABOUT YOUR OWN :STUFF?] ~
[ARE YOU WORRIED ABOUT SOMEONE ELSE'S :STUFF?] ~
[REALLY, MY :STUFF?]]
PPROP "WAS "PRIORITY 2
ADDRULE "WAS [# WAS YOU #STUFF] ~
[[WHAT IF YOU WERE :STUFF?] ~
[DO YOU THINK YOU WERE :STUFF?] ~
[WERE YOU :STUFF?] ~
[WHAT WOULD IT MEAN IF YOU WERE :STUFF?] ~
[WHAT DOES " :STUFF " SUGGEST TO YOU?] HOW]
ADDRULE "WAS [# YOU WAS #STUFF] ~
[[WERE YOU REALLY?] ~
[WHY DO YOU TELL ME YOU WERE :STUFF NOW?] ~
[PERHAPS I ALREADY KNEW YOU WERE :STUFF.]]
ADDRULE "WAS [# WAS I #STUFF] ~
[[WOULD YOU LIKE TO BELIEVE I WAS :STUFF?] ~
[WHAT SUGGESTS THAT I WAS :STUFF?] ~
[WHAT DO YOU THINK?] ~
[PERHAPS I WAS :STUFF.] ~
[WHAT IF I HAD BEEN :STUFF?]]
ADDRULE "WAS [#] [NEWKEY]
PPROP "WERE "PRIORITY 0
PPROP "WERE "TRANSLATION "WAS
PPROP "WERE "RULES [WAS]
PPROP "ME "TRANSLATION "YOU
PPROP "YOU'RE "PRIORITY 0
PPROP "YOU'RE "TRANSLATION "I'M
ADDRULE "YOU'RE [# I'M #STUFF] [[PRE [I ARE :STUFF] YOU]]
PPROP "I'M "PRIORITY 0
PPROP "I'M "TRANSLATION "YOU'RE
ADDRULE "I'M [# YOU'RE #STUFF] [[PRE [YOU ARE :STUFF] I]]
PPROP "MYSELF "TRANSLATION "YOURSELF
PPROP "YOURSELF "TRANSLATION "MYSELF
PPROP "MOTHER "FAMILY "TRUE
PPROP "MOM "TRANSLATION "MOTHER
PPROP "MOM "FAMILY "TRUE
PPROP "MOMMY "TRANSLATION "MOTHER
PPROP "MOMMY "FAMILY "TRUE
PPROP "FATHER "FAMILY "TRUE
PPROP "DAD "TRANSLATION "FATHER
PPROP "DAD "FAMILY "TRUE
PPROP "DADDY "TRANSLATION "FATHER
PPROP "DADDY "FAMILY "TRUE
PPROP "SISTER "FAMILY "TRUE
PPROP "BROTHER "FAMILY "TRUE
PPROP "HUSBAND "FAMILY "TRUE
PPROP "WIFE "FAMILY "TRUE
PPROP "CHILDREN "FAMILY "TRUE
PPROP "I "PRIORITY 0
PPROP "I "TRANSLATION "YOU
ADDRULE "I [# YOU !:IN [WANT NEED] #STUFF] ~
[[WHAT WOULD IT MEAN TO YOU IF YOU GOT :STUFF?] ~
[WHY DO YOU WANT :STUFF?] ~
[SUPPOSE YOU GOT :STUFF SOON.] ~
[WHAT IF YOU NEVER GOT :STUFF?] ~
[WHAT WOULD GETTING :STUFF MEAN TO YOU?] ~
[YOU REALLY WANT :STUFF.] ~
[I SUSPECT YOU REALLY DON'T WANT :STUFF.]]
ADDRULE "I [# YOU ARE # !STUFF:IN [SAD UNHAPPY DEPRESSED SICK] #] ~
[[I'M SORRY TO HEAR YOU ARE :STUFF.] ~
[DO YOU THINK COMING HERE WILL HELP YOU NOT TO BE :STUFF?] ~
[I'M SURE IT'S NOT PLEASANT TO BE :STUFF.] ~
[CAN YOU EXPLAIN WHAT MADE YOU :STUFF?] [PLEASE GO ON.]]
ADDRULE "I [# YOU ARE # !STUFF:IN [HAPPY ELATED GLAD BETTER] #] ~
[[HOW HAVE I HELPED YOU TO BE :STUFF?] ~
[HAS YOUR TREATMENT MADE YOU :STUFF?] ~
[WHAT MAKES YOU :STUFF JUST NOW?] ~
[CAN YOU EXPLAIN WHY YOU ARE SUDDENLY :STUFF?] ~
[ARE YOU SURE?] [WHAT DO YOU MEAN BY :STUFF?]]
ADDRULE "I [# YOU WAS #] [WAS]
ADDRULE "I [# YOU !:BELIEFP YOU #STUFF] ~
[[DO YOU REALLY THINK SO?] ~
[BUT YOU ARE NOT SURE YOU :STUFF.] ~
[DO YOU REALLY DOUBT YOU :STUFF?]]
ADDRULE "I [# YOU # !:BELIEFP # I #] [YOU]
ADDRULE "I [# YOU ARE #STUFF] ~
[[IS IT BECAUSE YOU ARE :STUFF THAT YOU CAME TO ME?] ~
[HOW LONG HAVE YOU BEEN :STUFF?] ~
[DO YOU BELIEVE IT NORMAL TO BE :STUFF?] ~
[DO YOU ENJOY BEING :STUFF?]]
ADDRULE "I [# YOU !:IN [CAN'T CANNOT] #STUFF] ~
[[HOW DO YOU KNOW YOU CAN'T :STUFF?] ~
[HAVE YOU TRIED?] [PERHAPS YOU COULD :STUFF NOW.] ~
[DO YOU REALLY WANT TO BE ABLE TO :STUFF?]]
END
TO SETUP3
ADDRULE "I [# YOU DON'T #STUFF] ~
[[DON'T YOU REALLY :STUFF?] [WHY DON'T YOU :STUFF?] ~
[DO YOU WISH TO BE ABLE TO :STUFF?] [DOES THAT TROUBLE YOU?]]
ADDRULE "I [# YOU FEEL #STUFF] ~
[[TELL ME MORE ABOUT SUCH FEELINGS.] ~
[DO YOU OFTEN FEEL :STUFF?] [DO YOU ENJOY FEELING :STUFF?] ~
[OF WHAT DOES FEELING :STUFF REMIND YOU?]]
ADDRULE "I [# YOU #STUFF I #] ~
[[PERHAPS IN YOUR FANTASY WE :STUFF EACH OTHER.] ~
[DO YOU WISH TO :STUFF ME?] ~
[YOU SEEM TO NEED TO :STUFF ME.] ~
[DO YOU :STUFF ANYONE ELSE?]]
ADDRULE "I [#STUFF] ~
[[YOU SAY :STUFF.] [CAN YOU ELABORATE ON THAT?] ~
[DO YOU SAY :STUFF FOR SOME SPECIAL REASON?] ~
[THAT'S QUITE INTERESTING.]]
PPROP "YOU "PRIORITY 0
PPROP "YOU "TRANSLATION "I
ADDRULE "YOU [# I REMIND YOU OF #] [DIT]
ADDRULE "YOU [# I ARE # YOU #] [NEWKEY]
ADDRULE "YOU [# I # ARE #STUFF] ~
[[WHAT MAKES YOU THINK I AM :STUFF?] ~
[DOES IT PLEASE YOU TO BELIEVE I AM :STUFF?] ~
[PERHAPS YOU WOULD LIKE TO BE :STUFF.] ~
[DO YOU SOMETIMES WISH YOU WERE :STUFF?]]
ADDRULE "YOU [# I #STUFF YOU] ~
[[WHY DO YOU THINK I :STUFF YOU?] ~
[YOU LIKE TO THINK I :STUFF YOU, DON'T YOU?] ~
[WHAT MAKES YOU THINK I :STUFF YOU?] ~
[REALLY, I :STUFF YOU?] ~
[DO YOU WISH TO BELIEVE I :STUFF YOU?] ~
[SUPPOSE I DID :STUFF YOU. WHAT WOULD THAT MEAN?] ~
[DOES SOMEONE ELSE BELIEVE I :STUFF YOU?]]
ADDRULE "YOU [# I &STUFF] ~
[[WE WERE DISCUSSING YOU, NOT ME.] ~
[OH, I :STUFF?] ~
[IS THIS REALLY RELEVANT TO YOUR PROBLEM?] ~
[PERHAPS I DO :STUFF.] ~
[ARE YOU GLAD TO KNOW I :STUFF?] ~
[DO YOU :STUFF?] [WHAT ARE YOUR FEELINGS NOW?]]
ADDRULE "YOU [#] [NEWKEY]
PPROP "WE "TRANSLATION "YOU
PPROP "WE "PRIORITY 0
PPROP "WE "RULES [I]
PPROP "XXYYZZ "PRIORITY 0
ADDRULE "XXYYZZ [#] ~
[[YOU'RE BEING SOMEWHAT SHORT WITH ME.] ~
[YOU DON'T SEEM VERY TALKATIVE TODAY.] ~
[PERHAPS YOU'D RATHER TALK ABOUT SOMETHING ELSE.] ~
[ARE YOU USING MONOSYLLABLES FOR SOME REASON?] NEWKEY]
PPROP "YES "PRIORITY 0
ADDRULE "YES [YES] [XXYYZZ [PRE [X YES] YES]]
ADDRULE "YES [#] ~
[[YOU SEEM QUITE POSITIVE.] ~
[YOU ARE SURE.] [I SEE.] [I UNDERSTAND.] NEWKEY]
PPROP "NO "PRIORITY 0
ADDRULE "NO [NO] [XXYYZZ [PRE [X NO] NO]]
ADDRULE "NO [#] ~
[[ARE YOU SAYING "NO" JUST TO BE NEGATIVE?] ~
[YOU ARE BEING A BIT NEGATIVE.] [WHY NOT?] [WHY "NO"?] NEWKEY]
PPROP "MY "PRIORITY 2
PPROP "MY "TRANSLATION "YOUR
ADDRULE "MY [# YOUR # !A:FAMILYP #B] ~
[[TELL ME MORE ABOUT YOUR FAMILY.] ~
[WHO ELSE IN YOUR FAMILY :B?] [YOUR :A?] ~
[WHAT ELSE COMES TO MIND WHEN YOU THINK OF YOUR :A?]]
ADDRULE "MY [# YOUR &STUFF] ~
[[YOUR :STUFF?] [WHY DO YOU SAY YOUR :STUFF?] ~
[DOES THAT SUGGEST ANYTHING ELSE WHICH BELONGS TO YOU?] ~
[IS IT IMPORTANT TO YOU THAT YOUR :STUFF?]]
ADDRULE "MY [#] [NEWKEY]
PPROP "CAN "PRIORITY 0
ADDRULE "CAN [# CAN I #STUFF] ~
[[YOU BELIEVE I CAN :STUFF, DON'T YOU?] HOW ~
[YOU WANT ME TO BE ABLE TO :STUFF.] ~
[PERHAPS YOU WOULD LIKE TO BE ABLE TO :STUFF YOURSELF.]]
ADDRULE "CAN [# CAN YOU #STUFF] ~
[[WHETHER OR NOT YOU CAN "STUFF DEPENDS MORE ON YOU THAN ON ME.] ~
[DO YOU WANT TO BE ABLE TO :STUFF?] ~
[PERHAPS YOU DON'T WANT TO :STUFF.] HOW]
ADDRULE "CAN [#] [HOW NEWKEY]
PPROP "IS "PRIORITY 0
ADDRULE "IS [&A IS &B] ~
[[SUPPOSE :A WERE NOT :B.] ~
[PERHAPS :A REALLY IS :B.] [TELL ME MORE ABOUT :A.]]
ADDRULE "IS [#] [NEWKEY]
PPROP "WHERE "PRIORITY 0
PPROP "WHERE "RULES [HOW]
PPROP "HOW "PRIORITY 0
ADDRULE "HOW [#] ~
[[WHY DO YOU ASK?] [DOES THAT QUESTION INTEREST YOU?] ~
[WHAT IS IT YOU REALLY WANT TO KNOW?] ~
[ARE SUCH QUESTIONS MUCH ON YOUR MIND?] ~
[WHAT ANSWER WOULD PLEASE YOU MOST?] ~
[WHAT DO YOU THINK?] ~
[WHAT COMES TO YOUR MIND WHEN YOU ASK THAT?] ~
[HAVE YOU ASKED SUCH QUESTIONS BEFORE?] ~
[HAVE YOU ASKED ANYONE ELSE?]]
PPROP "BECAUSE "PRIORITY 0
ADDRULE "BECAUSE [#] ~
[[IS THAT THE REAL REASON?] ~
[DON'T ANY OTHER REASONS COME TO MIND?] ~
[DOES THAT REASON SEEM TO EXPLAIN ANYTHING ELSE?] ~
[WHAT OTHER REASONS MIGHT THERE BE?] ~
[YOU'RE NOT CONCEALING ANYTHING FROM ME, ARE YOU?]]
PPROP "WHY "PRIORITY 0
ADDRULE "WHY [# WHY DON'T I #STUFF] ~
[[DO YOU BELIEVE I DON'T :STUFF?] ~
[PERHAPS I WILL :STUFF IN GOOD TIME.] ~
[SHOULD YOU :STUFF YOURSELF?] [YOU WANT ME TO :STUFF?] HOW]
END
TO SETUP4
ADDRULE "WHY [# WHY CAN'T YOU #STUFF] ~
[[DO YOU THINK YOU SHOULD BE ABLE TO :STUFF?] ~
[DO YOU WANT TO BE ABLE TO :STUFF?] ~
[DO YOU BELIEVE THIS WILL HELP YOU TO :STUFF?] ~
[HAVE YOU ANY IDEA WHY YOU CAN'T :STUFF?] HOW]
ADDRULE "WHY [#] [[WHY INDEED?] [WHY "WHY"?] [WHY NOT?] HOW NEWKEY]
PPROP "EVERYONE "PRIORITY 2
ADDRULE "EVERYONE [# !A:IN [EVERYONE EVERYBODY NOBODY NOONE] #] ~
[[REALLY, :A?] [SURELY NOT :A.] ~
[CAN YOU THINK OF ANYONE IN PARTICULAR?] ~
[WHO, FOR EXAMPLE?] ~
[YOU ARE THINKING OF A VERY SPECIAL PERSON.] ~
[WHO, MAY I ASK?] [SOMEONE SPECIAL PERHAPS.] ~
[YOU HAVE A PARTICULAR PERSON IN MIND, DON'T YOU?] ~
[WHO DO YOU THINK YOU'RE TALKING ABOUT?] ~
[I SUSPECT YOU'RE EXAGGERATING A LITTLE.]]
PPROP "EVERYBODY "PRIORITY 2
PPROP "EVERYBODY "RULES [EVERYONE]
PPROP "NOBODY "PRIORITY 2
PPROP "NOBODY "RULES [EVERYONE]
PPROP "NOONE "PRIORITY 2
PPROP "NOONE "RULES [EVERYONE]
PPROP "ALWAYS "PRIORITY 1
ADDRULE "ALWAYS [#] ~
[[CAN YOU THINK OF A SPECIFIC EXAMPLE?] [WHEN?] ~
[WHAT INCIDENT ARE YOU THINKING OF?] [REALLY, ALWAYS?] ~
[WHAT IF THIS NEVER HAPPENED?]]
PPROP "LIKE "PRIORITY 10
ADDRULE "LIKE [# !:IN [AM IS ARE WAS] # LIKE #] [DIT]
ADDRULE "LIKE [#] [NEWKEY]
ADDRULE "DIT [#] ~
[[IN WHAT WAY?] [WHAT RESEMBLANCE DO YOU SEE?] ~
[WHAT DOES THAT SIMILARITY SUGGEST TO YOU?] ~
[WHAT OTHER CONNECTIONS DO YOU SEE?] ~
[WHAT DO YOU SUPPOSE THAT RESEMBLANCE MEANS?] ~
[WHAT IS THE CONNECTION, DO YOU SUPPOSE?] ~
[COULD THERE REALLY BE SOME CONNECTION?] HOW]
PPROP "PROBLEM "PRIORITY 5
ADDRULE "PROBLEM [#A !B:IN [IS ARE] YOUR !C:IN [PROBLEM PROBLEMS] #] ~
[[:A :B YOUR :C.] [ARE YOU SURE :A :B YOUR :C?] ~
[PERHAPS :A :B NOT YOUR REAL :C.] ~
[YOU THINK YOU HAVE PROBLEMS?] [DO YOU OFTEN THINK ABOUT :A?]]
ADDRULE "PROBLEM [# YOUR !A:IN [PROBLEM PROBLEMS] !B:IN [IS ARE] #C] ~
[[YOUR :A :B :C?] [ARE YOU SURE YOUR :A :B :C?] ~
[PERHAPS YOUR REAL :A :B NOT :C.] [YOU THINK YOU HAVE PROBLEMS?]]
ADDRULE "PROBLEM [#] ~
[[PLEASE CONTINUE, THIS MAY BE INTERESTING.] ~
[HAVE YOU ANY OTHER PROBLEMS YOU WISH TO DISCUSS?] ~
[PERHAPS YOU'D RATHER CHANGE THE SUBJECT.] ~
[YOU SEEM A BIT UNEASY.] NEWKEY]
PPROP "PROBLEMS "PRIORITY 5
PPROP "PROBLEMS "RULES [PROBLEM]
ADDMEMR "PROBLEM [#STUFF IS YOUR PROBLEM #] ~
[[EARLIER YOU MENTIONED :STUFF.] ~
[LET'S TALK FURTHER ABOUT :STUFF.] ~
[TELL ME MORE ABOUT :STUFF.] ~
[YOU HAVEN'T MENTIONED :STUFF FOR A WHILE.]]
PPROP "ASK "PRIORITY 0
ADDRULE "ASK [# YOU ASK #] [HOW]
ADDRULE "ASK [# YOU ! ASKING #] [HOW]
ADDRULE "ASK [# I #] [YOU]
ADDRULE "ASK [#] [NEWKEY]
END
TO SPECIAL :PAT :SEN
SET.SPECIAL PARSE.SPECIAL BF FIRST :PAT "
OP RUN FPUT WORD "MATCH FIRST FIRST :PAT []
END
TO TOKENIZE :TEXT
IF EMPTYP :TEXT [OUTPUT []]
OUTPUT SE TOKENWORD FIRST :TEXT " TOKENIZE BF :TEXT
END
TO TOKENWORD :WORD :OUT
IF EMPTYP :WORD [OUTPUT :OUT]
IF MEMBERP FIRST :WORD [, " ] [OUTPUT TOKENWORD BF :WORD :OUT]
IF MEMBERP FIRST :WORD [. ? ! |;|] [OUTPUT SE :OUT ".]
OUTPUT TOKENWORD BF :WORD WORD :OUT FIRST :WORD
END
TO TRANSLATE :WORD
LOCAL "NEW
MAKE "NEW GPROP :WORD "TRANSLATION
OUTPUT IFELSE EMPTYP :NEW [:WORD] [:NEW]
END
TO TRY.PRED
IF LISTP :SPECIAL.PRED [OP MATCH :SPECIAL.PRED FIRST :SEN]
OP RUN LIST :SPECIAL.PRED QUOTED FIRST :SEN
END
TO USEMEMORY
IF EMPTYP :MEMORY [LASTRESORT STOP]
PRINT FIRST :MEMORY
MAKE "MEMORY BF :MEMORY
END